1. Field of the Invention
The present invention relates to storage systems and, more specifically, to migration of data in a storage system environment.
2. Background Information
In a dynamic storage environment, a storage administrator may be required to migrate data from a local storage location in, e.g., a source storage system to a new, remote storage location in a destination storage system. The requirement for data migration may arise because a data container, such as a volume, that holds the data becomes full or the source storage system becomes overloaded. The storage administrator may further require a capability to migrate a subset of data in a volume, e.g., a directory or a file, along with any associated locks, without impacting client access to the data during the migration. As used herein, client access to the data includes the ability of a client to modify the data during migration.
A known data migration implementation involves a process that maintains a namespace using symbolic links or by manipulating automount maps to change the storage location of the data. As used herein, a namespace is a client's view of an organization of its data accessible by the client on a storage system, whereas a symbolic link is a data structure that contains a reference to a storage location (or path) of the client's data and an automount map is a data structure used by an automount program that identifies a mount point for that data. For example, the storage administrator may initiate migration to copy the data from the source storage system to the destination storage system in a manner that preserves the namespace, and then updates the symbolic links or automount maps. However, the migration process is not inherently transparent to the client because an application running on the client may need to be interrupted in order to continue using the namespace to direct requests to access that data (e.g., a file) as long that file is open. That is, the application may be stopped or paused to enable closing of the file on the source storage system, updating of the symbolic links or automount maps to reference the new storage location of the file, and then reopening of the file on the destination storage system in order to redirect the client application's requests to the new location. Such interruption is often disruptive to the client.
Another known implementation employs an external storage device or appliance that physically and/or logically interfaces to the source storage system to enable data migration with the destination storage system. The storage appliance receives client requests to access the data during migration and forwards those requests to the source storage system. The implementation allows client access to the data, migration of locks associated with the data and automatic update of symbolic links. However, to provide interoperability between the storage appliance and source storage system, the implementation includes an interface that may introduce an additional point of failure.